from abc import ABC, abstractmethod
from typing import List, IO
from llama_index.core.schema import Document


class DataParserInterface(ABC):
    """
    一个标准接口，用于将一个二进制文件流解析成 LlamaIndex 的 Document 对象列表。
    """

    @abstractmethod
    def parse(self, file: IO[bytes], file_format: str, **kwargs) -> List[Document]:
        """
        从一个二进制流中解析文档。

        Args:
            file: 一个以二进制模式打开的文件类对象 (file-like object)。
            file_format: 原始文件的格式/扩展名 (例如 "pdf", "txt")。
        """
        pass 